home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / GRAPHICS / UVE138.ZIP / EXAMPLES.ZIP / GLENZ.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-09-12  |  1.4 KB  |  77 lines

  1. {$A+,B-,D+,E+,F-,G+,I+,L+,N-,O-,P-,Q-,R-,S+,T-,V+,X+}
  2. {$M 16384,0,655360}
  3.  
  4. {
  5. GLENZ.PAS
  6. Demonstrates     - sprite color mapping
  7.         - sprite transparency
  8.         - higher level of sprite encapsulation
  9. }
  10.  
  11. uses    crt,uve32;
  12.  
  13. const    maxspheres=100;
  14.  
  15. type    spheretype=record
  16.         x,y,
  17.         forcex,forcey:longint;
  18.     end;
  19.  
  20. var    sphere:array[1..maxspheres] of spheretype;
  21.  
  22. procedure init;
  23. var    pal:palette;
  24.     i:integer;
  25. begin
  26.     ia_inituve;
  27.     ia_loadspr('circle.uvs',1);
  28.     for i:=0 to 63 do with pal[i] do begin
  29.         red:=i;
  30.         green:=i;
  31.         blue:=i;
  32.     end;
  33.     ia_makeglenzmap(pal,5,5,5,maparray[1]);
  34.     ia_powerup;
  35.     ia_setpalette(pal);
  36.     ia_setcycletime(40);
  37.     for i:=1 to maxspheres do with sphere[i] do begin
  38.         x:=longint(random(320))*256;
  39.         y:=longint(random(180))*256;
  40.         forcex:=(longint(random(10))-5)*256;
  41.         forcey:=(longint(random(10))-5)*256;
  42.         spr[i].n:=1;
  43.         spr[i].transparent:=true;
  44.         spr[i].map:=1;
  45.     end;
  46. end;
  47.  
  48. procedure deinit;
  49. begin
  50.     ia_shutdown;
  51.     halt;
  52. end;
  53.  
  54.  
  55. procedure movespheres;
  56. var    i:integer;
  57. begin
  58.     for i:=1 to maxspheres do with sphere[i] do begin
  59.         inc(x,forcex);
  60.         inc(y,forcey);
  61.         if (y>200*256) and (forcey>0) then
  62.             forcey:=-forcey
  63.             else inc(forcey,64);
  64.         if (x<0) and (forcex<0) then forcex:=-forcex;
  65.         if (x>320*256) and (forcex>0) then forcex:=-forcex;
  66.         ia_center(i,x div 256,y div 256,2);
  67.     end;
  68. end;
  69.  
  70. begin
  71.     init;
  72.     repeat
  73.         movespheres;
  74.         ia_doframe;
  75.     until keypressed;
  76.     deinit;
  77. end.